home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib04.dsk / APPLE THREE-D SHAPES.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  53 lines

  1. 10 ST = 20:EN = 170:S = 7:P = .05:X1 = 139
  2. 20 RA = (EN -ST)/2
  3. 30 :
  4. 40  REM  ST IS Y STARTING VALUE
  5. 50  REM  EN IS Y ENDING VALUE
  6. 60  REM  RA IS THE RADIUS
  7. 70  REM  S IS THE STEP
  8. 80  REM  P IS THE PRECISION
  9. 90  REM  .05-PRECISE BUT SLOW
  10. 100  REM .3-FAST BUT IMPRECISE
  11. 110 :
  12. 120 :
  13. 130  GOSUB 310: GOTO 260: REM  MAIN PROGRAM
  14. 140 :
  15. 150  REM  DRAW THE ELIPSE
  16. 160 :
  17. 170  FOR I = 0 TO 6.4  STEP P
  18. 180 X = A * COS(I) +X1
  19. 190 Y = (A/4) * SIN(I)/1.212 +Y1
  20. 200  IF I = 0  THEN  HPLOT X,Y: NEXT 
  21. 210  HPLOT  TO X,Y: NEXT 
  22. 220  RETURN 
  23. 230 :
  24. 240  REM  MAIN PROGRAM
  25. 250 :
  26. 260  HGR : POKE  -16302,0: HCOLOR= 3
  27. 270  FOR Y1 = ST TO EN  STEP S
  28. 280 K = (Y1 -ST) -(EN -Y1)
  29. 290  ON J GOSUB 500,510,520,530,540,550,560,570,580,590
  30. 300  GOSUB 170: NEXT : WAIT  -16384,128: POKE  -16368,0: TEXT : END 
  31. 310  TEXT : HOME : VTAB 3: PRINT "WHICH FIGURE TO DRAW ?": POKE 33,35: POKE 32,5: PRINT : PRINT 
  32. 320  PRINT "(1) SPHERE"
  33. 330  PRINT "(2) HYPERBOLA"
  34. 340  PRINT "(3) CYLINDER"
  35. 350  PRINT "(4) CONE"
  36. 360  PRINT "(5) INVERTED VASE"
  37. 370  PRINT "(6) HOURGLASS"
  38. 380  PRINT "(7) PEANUT"
  39. 390  PRINT "(8) BELL"
  40. 400  PRINT "(9) TOP"
  41. 410  PRINT "(10) TWO WINEGLASSES"
  42. 420  TEXT : VTAB 19: PRINT : INPUT "YOUR CHOICE ?";J$:J =  VAL(J$): IF J = 0  THEN J = 1
  43. 430  RETURN 
  44. 500 A = ( SQR( ABS(RA ^2 -( ABS(K/2) ^2)))) *1.212: RETURN : REM  SPHERE
  45. 510 A = (K/(RA/2) *1.5) ^2 +5: RETURN : REM  HYPERBOLA
  46. 520 A = 30: RETURN : REM  CYLINDER
  47. 530 A = A +2: RETURN : REM  CONE
  48. 540 A = ((K/RA) ^3 +5) *4: RETURN : REM  INVERTED VASE
  49. 550 A =  SIN(K/RA) *40: RETURN : REM  3-D SINE WAVE
  50. 560 A = (( SIN(K/RA)) ^2 +( COS(K/RA))) *40: RETURN : REM  SEMI-SINE WAVE
  51. 570 A = A +(K/(RA/2) *.9) ^2: RETURN : REM  BELL
  52. 580 A = RA - ABS(K/2): RETURN : REM  TOP
  53. 590 A =  COS(RA/K) *40 + SIN(RA/K) ^2 *40: RETURN : REM  WINEGLASSES